Many current gaming machines are configured with electronic components, commonly mounted on one or more printed circuit boards (PCBs). Many such electronic components use programming or other information stored in memories. In at least one typical configuration, a gaming terminal or gaming machine will include a controller board, a communications board or module, and one or more so-called peripheral boards such as a display controller board, a currency acceptor board, a coin handler board, and the like. Typically at least one board, such as the game controller board, include a processor (microprocessor) or other computer unit which often operates based on programming or other information (software or firmware) stored in a memory such as one or more electronically erasable programmable read-only memories (EEPROMs). Such software or firmware may be programmed or stored in the memory locations during the manufacturing or assembly of the gaming device. Additionally, software or firmware may be provided to replace or supplement the software or firmware in a gaming device which is in operation (in the field), e.g. features, new games and the like, and/or to correct programming errors. In either case, the new firmware or software is transferred or "downloaded" from a source (which may be, e.g., a computer such as a workstation personal computer, laptop computer, and the like) to the "target" memory in a particular gaming device or machine.
Although downloading from one computer to another is, in general, a process that is currently known, downloading software or firmware to components of gaming devices presents particular problems not readily addressed by conventional downloading techniques. One feature applicable to gaming device downloading is the stringent regulatory oversight and control exercised by regulatory authorities in many jurisdictions. In many, and perhaps all, regulated gaming jurisdictions, downloading of software or firmware to a gaming device should provide some assurance that the new software or firmware will comply with local regulations for the jurisdiction where the device will be located.
In the strict regulatory environment for many gaming devices, it is typically necessary to provide assurance that approved and proper software is provided in the peripheral and other boards, in addition to that provided on the game controller board. For example, a gaming regulatory authority in one jurisdiction may require assurance that, e.g., bill acceptor software will be appropriate (and approved) for that jurisdiction (and will not, e.g., run the risk of downloading bill acceptor software that was approved in a different jurisdiction).
Accordingly, it would be advantageous to provide a program management system that reduces or eliminates the potential incorrect downloads and/or verifies jurisdiction approvals for downloaded software.
It is also commonly found that gaming devices occur in a wide variety of configurations, such as employing numerous different types of processors, memories, game configurations, versions and types, peripheral hardware and software and the like. Such differences may not be apparent (or may be discemable only with difficulty) from a visual inspection of the gaming device, its components, or its operation. For this reason, when it is desired to download software to a particular gaming device, it is typically necessary, in current systems, to manually select a particular software version for downloading, bearing in mind e.g., the type of hardware found on particular gaming devices, the items request by one customer and jurisdictional approvals that have been given to various software versions, lest the newly-downloaded software is incompatible with the gaming device or results in operation which is not approved by a particular jurisdiction. This situation is particularly burdensome in the context of gaming devices in which it is sometimes necessary or desirable to load programming in a large number of devices in a relatively short amount of time.
Accordingly, it would be advantageous to reduce or eliminate the requirement (or the ability) of an operator to manually select which software is to be loaded on a particular memory or component.
When the manufacture or assembly of gaming devices involves storing or loading software or firmware into components of the gaming device, previous approaches have typically used partially or fully manual methods for such loading of software or firmware. For example, in previous systems, a technician, typically would use a written purchase order or work order as a basis for selecting which programs are to be loaded, and would manually enter the file name or other program information in order to initiate downloading. EEPROMs which are manually programmed in this fashion are typically then moved to the production floor where they are inserted into printed circuit boards (PCB) assemblies. The PCB assemblies are then inserted or placed in terminals as part of the assembly process.
Such manual loading of software or firmware has a number of disadvantageous aspects. Such manual loading involves a relatively large investment of time and effort typically by skilled personnel, and thus results in relatively high expense. At least partially as a result of the number of manual steps involved, and particularly those which require matching the software to components or hardware, there is a relatively high potential for errors, such as providing gaming devices with the wrong programs, configured for the wrong customer, provided with incorrect components or assemblies and the like.
Accordingly, it would be advantageous to provide a system which facilitates fully or partially automatic downloading and management of the programs for gaming devices.
In a typical situation, there is often a delay of some weeks or months between the time a customer places an order and the time the gaming device assembly is completed. Not uncommonly, development may be taking place with respect to some or all of the software to be used in such gaming devices. Although it would be desirable, in some regards, to always load a product with the most recent (and presumably best or most advanced) versions of a software package, it may be that software improvements made between the order date and final assembly date have not been approved for all jurisdictions and, accordingly, in previous systems, it was necessary, in order to assure loading of the best permissible software version, to manually check jurisdictional approvals for various versions of available software, bearing in mind the intended jurisdictional location of a particular gaming device. Accordingly, it would be advantageous to provide a system in which the most recent software version which has been approved for a particular jurisdiction will be selected automatically (without the need for manual analysis or selection).
In typical systems currently used, there is little or no record keeping with respect to hardware or software components that are used in particular gaming devices. As a result, for purposes such as repair, maintenance, warranty and the like, current systems often require expensive and time-consuming manual identification of such hardware or software components. Accordingly, it would be useful to provide a program management system which included the potential to produce and maintain databases identifying hardware and/or software components associated with particular gaming devices, preferably in a manner which is substantially automatic (i.e. without requiring manual entry into the database of component identification information).